package com.leetcode;


public class SwapNodesInPairs {

	public static void main(String[] args) {

		int[] array={1,2,3,4,5};
		ListNode head=new ListNode(array[0]);
		ListNode copyHead=head;
		for(int i=1;i<array.length;i++){
			head.next=new ListNode(array[i]);
			head=head.next;
		}
		ListNode result=swapPairs(copyHead);
		while(result!=null){
			System.out.print(result.val+" ");
			result=result.next;
		}
	}

	public static ListNode swapPairs(ListNode head) {

		if(head==null||head.next==null) return head;

		ListNode result=new ListNode(0);
		result.next=head;
		ListNode current=result;
		while(current.next!=null&&current.next.next!=null){
			ListNode first=current.next;
			ListNode second=current.next.next;
			first.next=second.next;
			current.next=second;
			current.next.next=first;
			current=current.next.next;
		}
//		ListNode result=head.next;
//		while(head!=null){
//			ListNode temp=head;
//			ListNode copyhead=head.next;
//			head=head.next;
//			head.next=temp;
//			temp.next=null;
//			
//			head=copyhead.next;
//		}
//		ListNode copyHead=head;
//		head=copyHead.next;
//		ListNode resultNode=head;
//		while(head!=null){
//			head.next=copyHead;
//			head=head.next;
//			//copyHead=copyHead.next;
//			ListNode temp=copyHead.next.next;
//			copyHead=temp.next;
//			copyHead.next=temp;
//		}
		return result.next;
	}
	
//	public static int getLen(ListNode head){
//		int len=0;
//		while(head!=null){
//			len++;
//			head=head.next;
//		}
//		return len;
//	}
	
}
